package com.qiaoas.springbootddd.Infrastructure.Repository;

import com.qiaoas.springbootddd.Infrastructure.Domain.DomainObject.BaseBo;
import com.qiaoas.springbootddd.Infrastructure.Domain.DomainObject.BaseBoEntity;
import com.qiaoas.springbootddd.Infrastructure.Domain.DomainObject.IBaseBo;
import com.qiaoas.springbootddd.Infrastructure.UnitOfWork.IUnitOfWork;
import com.qiaoas.springbootddd.Infrastructure.UnitOfWork.UnitOfWork;

import java.util.List;

/**
 * 仓储层基类
 *
 * @param <IBoT>领域对象
 * @param <BoEntity>业务实体
 * @param <BoSearch>业务查询规约
 * @param <BoSort>业务排序条件
 */
public class BoRepositoryImp<
        IBoT extends BaseBo,
        BoEntity extends BaseBoEntity,
        BoSearch extends BoSearchCriteria,
        BoSort extends BoSortCriteria> implements BoRepository<IBoT, BoSearch, BoSort> {

    private IUnitOfWork unitOfWork = new UnitOfWork();

    @Override
    public void add(IBoT bo) {
        if (bo != null) {

        } else {

        }
    }

    @Override
    public void remove(IBoT bo) {

    }

    @Override
    public IBoT Find(String keyId) {
        return null;
    }

    @Override
    public List<IBoT> FindByCondition(BoSearch searchCriteria) {
        return null;
    }

    @Override
    public List<IBoT> FindByCondition(BoSearch searchCriteria, BoSort sortCriteria) {
        return null;
    }

}
